const env = require('../config/env.conf')
const logger = {
  open: env === 'prod',
  info(name, msg, stringify) {
    this.__log('info', name, msg, stringify)
  },
  warn() {
    this.__log('warn', name, msg, stringify)
  },
  error(name, msg, stringify) {
    this.__log('error', name, msg, stringify)
  },
  __log(type, name, msg, stringify) {
    if (!this.open) return;
    if (name === undefined) {
      console[type]('name is undefined.');
      return;
    }
    if (!msg) msg = "";
    let color = "";
    switch(type) {
      case 'info': {
        color = 'green;'
      } break;
      case 'warn': {
        color = 'yellow';
      } break;
      case 'error': {
        color = 'red';
      } break;
      default : {
        color = 'green'
      }
    }
    if (typeof msg === 'object') {
      console[type]("%c" + name + " : ", "color:" + color);
      if (stringify) {
        msg = JSON.stringify(msg, null, 2);
        console[type](msg);
      } else {
        console[type](msg);
      }
    } else {
      msg = msg ? "%c" + name + " : %c" + msg : "%c" + name;
      console[type](msg, "color:" + color);
    }
  }
}
module.exports = logger